package com.doit.day05

//可以适用于模式匹配
object _01_练习 {
  def main(args: Array[String]): Unit = {
    val list: List[Any] = List[Any](1, "hello", true, 'a', 4, 5, 6)
    //将集合中所有的整数类型都取出来，然后乘以10返回
    //list(10,40,50,60)   list(1,4,5,6)
    val list1: List[Any] = list.filter(elem => {
      //对elem类型进行判断
      elem.isInstanceOf[Int]
    })

    list1.map(elem=>{
      //现在是any类型，需要乘以10，要转换成Int类型
      val i: Int = elem.asInstanceOf[Int]
      i*10
    }).foreach(println)

    //如果以后遇到这种挑食的情况 collect

//PartialFunction  叫偏函数
    val res: List[Int] = list.collect(new PartialFunction[Any, Int] {
      //就类似于上面的filter
      override def isDefinedAt(x: Any) = x.isInstanceOf[Int]

      //类似于map
      override def apply(v1: Any) = v1.asInstanceOf[Int] * 10
    })

    res.foreach(println)





  }

}
